package com.hlkj.pay.vo.merchant.req.access;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import java.util.List;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;

import com.hlkj.pay.dto.merchant.MerchantAccessBusinessLicense;
import com.hlkj.pay.dto.merchant.MerchantAccessScene;
import com.hlkj.pay.vo.BaseReq;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
 * @author HlpayTeam
 * @date 2024/10/15 9:48
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class MerchantAccessBusinessReq extends BaseReq {
	@Schema(description ="商户简称")
	@NotEmpty(message = "经营信息-商户简称 不能为空")
	private String shortName;
	/**
	 * MCC编码
	 */
	@Schema(description ="MCC编码 字典接口通过 dictKey=mccCategory 获取一级 然后通过 dictKey=mccCategory,parentDictKey=一级code 获取 ")
	@NotEmpty(message = "经营信息-MCC编码 不能为空")
	private String mcc;
	/**
	 * MCC编码
	 */
	@Schema(description ="微信 MCC编码 字典接口通过 dictKey=mccWechat 获取一级 然后通过 dictKey=mccWechat,parentDictKey=一级code 获取 ")
	private String wechatMcc;
	/**
	 * MCC编码
	 */
	@Schema(description ="微信 MCC编码 字典接口通过 dictKey=mccAlipay 获取一级 然后通过 dictKey=mccAlipay,parentDictKey=一级code 获取 ")
	private String alipayMcc;

	/**
	 * 门店门头url
	 */
	@Schema(description ="门店门头url")
	@NotEmpty(message = "经营信息-门店门头url 不能为空")
	private String storeHeaderUrl;
	/**
	 * 店铺内景url
	 */
	@Schema(description ="店铺内景url")
	@NotEmpty(message = "经营信息-店铺内景url 不能为空")
	private String storeIndoorUrl;
	/**
	 * 店铺收银台 前台url
	 */
	@Schema(description ="店铺收银台 前台url")
	@NotEmpty(message = "经营信息-店铺收银台 不能为空")
	private String storeCashierDeskUrl;
	
	
	@Schema(description ="客服电话")
	@NotEmpty(message = "经营信息-客服电话 不能为空")
	private String servicePhone;
	/**
	 * 省份编码
	 */
	@Schema(description ="省份编码 字典接口通过 dictKey=areaCode,dictLevel=1 获取 ")
	@NotEmpty(message = "经营信息-省份编码 不能为空")
	private String provinceCode;
	/**
	 * 城市编码
	 */
	@Schema(description ="城市编码 字典接口通过 dictKey=areaCode,parentDictKey=provinceCode,dictLevel=2 获取 ")
	@NotEmpty(message = "经营信息-城市编码 不能为空")
	private String cityCode;
	/**
	 * 区域编码
	 */
	@Schema(description ="区域编码 字典接口通过 dictKey=areaCode,parentDictKey=cityCode,dictLevel=3 获取 ")
	@NotEmpty(message = "经营信息-区域编码 不能为空")
	private String areaCode;
	/**
	 * 地址
	 */
	@Schema(description ="地址")
	@NotEmpty(message = "经营信息-地址 不能为空")
	private String address;
	/**
	 * 地址
	 */
	@Schema(description ="办公场地面积 m2")
	private String officeSpace;
	/**
	 * 地址
	 */
	@Schema(description ="办公场地性质 1:自有办公用地，2:租用办公场地，3:无固定办公场地")
	private String officeSpaceType;
	/**
	 * 地址
	 */
	@Schema(description ="业务描述")
	@Size(max = 200, message = "业务描述长度不能超过200")
	private String businessDesc;
	/**
	 * 经营资质
	 */
	@Schema(description ="经营资质")
	private List<MerchantAccessBusinessLicense> businessLicenses;
	/**
	 * 其他附件
	 */
	@Schema(description ="其他文件")
	private List<String> fileUrls;
	/**
	 * 经营资质
	 */
	@Schema(description ="应用场景")
	private List<MerchantAccessScene> merchantAccessSceneList;
	@Schema(description ="场景类型 1 线上 2 线下 3 ALL")
	private Integer sceneType;
	
}
